//package cn.zbzcode.hrm;
//
//import cn.zbzcode.hrm.doc.CourseDoc;
//import cn.zbzcode.hrm.repository.CourseElasticsearchRepository;
//import org.elasticsearch.index.query.BoolQueryBuilder;
//import org.elasticsearch.index.query.QueryBuilder;
//import org.elasticsearch.index.query.QueryBuilders;
//import org.elasticsearch.search.sort.FieldSortBuilder;
//import org.elasticsearch.search.sort.SortOrder;
//import org.junit.Test;
//import org.junit.runner.RunWith;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.boot.test.context.SpringBootTest;
//import org.springframework.data.domain.Page;
//import org.springframework.data.domain.PageRequest;
//import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
//import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
//import org.springframework.data.elasticsearch.core.query.SearchQuery;
//import org.springframework.test.context.junit4.SpringRunner;
//
//import java.util.List;
//
//@RunWith(SpringRunner.class)
//@SpringBootTest(classes = ESServerApplication2050.class)
//public class ESTest {
//
//    //es的工具
//    @Autowired
//    private ElasticsearchTemplate elasticsearchTemplate;
//
//    @Autowired
//    private CourseElasticsearchRepository courseElasticsearchRepository;
//
//    @Test
//    public void testCreateIndex() {
//        //创建索引
//        elasticsearchTemplate.createIndex(CourseDoc.class);
//        //做文档映射
//        elasticsearchTemplate.putMapping(CourseDoc.class);
//    }
//
//    //数据的添加
//    @Test
//    public void testAdd(){
//        for(int i = 0 ; i < 50 ; i++){
//            CourseDoc courseDoc = new CourseDoc();
//            courseDoc.setId(i+0l);
//            if(i % 2 == 0){
//                courseDoc.setName("小明得分："+ i*2);
//                courseDoc.setIntro("考考考，老师的法宝");
//                courseDoc.setCourseTypeId(1314L);
//            }else{
//                courseDoc.setName("小红得分："+ i*3);
//                courseDoc.setIntro("分分分，学生的命根");
//                courseDoc.setCourseTypeId(520L);
//            }
//            courseDoc.setPrice(i*2 +100F);
//            courseElasticsearchRepository.save(courseDoc);
//            //courseElasticsearchRepository.findById()
//            //courseElasticsearchRepository.deleteById();
//            System.out.println("保存成功·······");
//        }
//    }
//    @Test
//    public void testSearch(){
//        //构建查询对象
//        NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder();
//        //构建查询条件================================================================================
//        //添加查询条件
//        //组合查询
//        BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
//        //name中包含  Java
//        boolQueryBuilder.must(QueryBuilders.matchQuery("name","小明"));
//
//        List<QueryBuilder> filter = boolQueryBuilder.filter();
//        //课程类型是 1042   : 等值查询 term   -> 过滤
//        filter.add(QueryBuilders.termQuery("courseTypeId",1314L));
//
//        //价格是 100 - 500 : 范围 range       -> 过滤
//        filter.add(QueryBuilders.rangeQuery("price").gte(100).lte(120));
//
//        nativeSearchQueryBuilder.withQuery(boolQueryBuilder);
//        //-----------------------------------------------------------------------------------------------
//
//        //分页查询第二页，每页 5条
//        nativeSearchQueryBuilder.withPageable(PageRequest.of(0,100));
//        //排序 根据  价格   倒排序
//        nativeSearchQueryBuilder.withSort(new FieldSortBuilder("price").order(SortOrder.DESC));
//
//        //执行查询=====================================================================================
//        //根据builder构建查询对象
//        SearchQuery searchQuery = nativeSearchQueryBuilder.build();
//
//        //执行查询
//        Page<CourseDoc> page = courseElasticsearchRepository.search(searchQuery);
//
//        //处理结果=====================================================================================
//        //获取结果
//        long totalElements = page.getTotalElements();
//        System.out.println("条数："+totalElements);
//
//        int totalPages = page.getTotalPages();
//        System.out.println("页数："+totalPages);
//
//        page.getContent().forEach(c->{
//            System.out.println(c);
//        });
//    }
//
//
//}